package framework.event
{
import flash.events.Event;

/**
 * PropertyEvent
 * @author jliang
 * 
 */
public class PropertyEvent extends Event
{
	//==========================================================================
	//  Class constants
	//==========================================================================
	public static const PROPERTY_CHANGED:String = "propertyChanged";
	//==========================================================================
	//  Constructor
	//==========================================================================
	public function PropertyEvent(type:String, key:String, oldValue:Object, newValue:Object,
								  bubbles:Boolean=false, cancelable:Boolean=false)
	{
		super(type, bubbles, cancelable);
		this._key = key;
		this._oldValue = oldValue;
		this._newValue = newValue;
	}
	//==========================================================================
	//  Properties
	//==========================================================================
	private var _key:String;

	public function get key():String
	{
		return _key;
	}
	
	private var _oldValue:Object;

	public function get oldValue():Object
	{
		return _oldValue;
	}
	
	private var _newValue:Object;

	public function get newValue():Object
	{
		return _newValue;
	}
}
}